package examples.java.spi;

import java.util.*;

/**
 * @author Bill
 * @version 2013-05-30
 */
public class SPITest {

    private static ServiceLoader<Comparator> serviceLoader = ServiceLoader.load(Comparator.class);

    // JDK 1.6 引入的新的 SPI 扩展机制
    // 在 examples-spi 模块中，定义了一个SPI的实现，这里使用ServiceLoader来加载classpath下的META-INF/services
    private static Comparator<User> getComparator() {
        for (Comparator comparator : serviceLoader) {
            return (Comparator<User>)comparator;
        }
        return null;
    }

    public static void main(String[] args) {
        List<User> users = new ArrayList<User>();
        Comparator comparator = getComparator();
        Collections.sort(users, comparator);
    }

}
